Computer systems, such as the computer system illustrated in FIG. 1, include processors 1 designed for different types of architectures. A key aspect of these architectures is the standard size of registers 3, datapaths 11, address sizes, memory locations 5 and similar features of the computer system. While some computer architectures mix the use of different sizes amongst these elements 13, most computer systems utilize mostly or entirely one size. For example, many computer systems are designed with 32-bit or 64-bit architectures, where the addresses, datapath sizes and register sizes are uniformly 32-bit or 64 bits in size.
Software 7 is compiled and formatted for a specific architecture. Software compiled and designed for a 64-bit architecture cannot be executed by a computer system with a 32-bit architecture or mixed architectures with key elements being 32-bit. Values are compiled as 64-bit integers or similar 64-bit value types and instructions are specific to the 64-bit architecture. Some processors designed for 64-bit architectures can also execute programs designed for smaller architecture sizes, usually in a separate 32-bit mode. The ability of a 64-bit architecture to execute programs compiled as 64-bit or 32-bit programs is influenced by the operating system available to the computer system. A 32-bit operating system running on a 64-bit architecture with a 32-bit support mode may limit the system to executing 32-bit programs.